<template>
  <div>
    <div class="bg-white grid-content">
      <el-form :inline="true" :model="yjbbForm" class="demo-form-inline">
        <el-date-picker style="top:15px" v-model="value1" type="daterange" value-format='yyyy-MM-dd' range-separator="至"
          start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" unlink-panels>
        </el-date-picker>

        <el-form-item>
          <el-button type="primary" @click="reload">查询</el-button>
          <el-button type="success" @click="exportExcel">下载</el-button>
        </el-form-item>
      </el-form>
    </div>
    <div class="bg-white grid-content">
      <div style="overflow: hidden; ">
        <div class="mytitle"><svg-icon icon-class="yjbb" class="myIcon" />民主生活会整改情况</div>
      </div>
      <!-- 表格 -->
      <el-table
        :data="tableData"
        :header-cell-style="{ background: '#F5F7FA', color: '#909399' }"
        border
        stripe
      >
        <el-table-column
          align="center"
          fixed="left"
          type="index"
          label="序号"
          :index="indexMethod"
          width="60"
        >
        </el-table-column>
        <el-table-column align="center" prop="nd" label="年度">
        </el-table-column>
        <el-table-column align="center" prop="dzbmc" label="党支部名称">
        </el-table-column>
        <el-table-column align="center" prop="tm" label="题目">
        </el-table-column>
        <el-table-column align="center" prop="czwt" label="存在问题">
        </el-table-column>
        <el-table-column align="center" prop="zrbm" label="责任部门">
        </el-table-column>
        <el-table-column align="center" prop="zgcs" label="整改措施">
        </el-table-column>
        <el-table-column align="center" prop="jdap" label="进度安排">
        </el-table-column>
        <el-table-column align="center" prop="csxg1" label="一季度整改措施效果">
        </el-table-column>
        <el-table-column align="center" prop="csxg2" label="二季度整改措施效果">
        </el-table-column>
        <el-table-column align="center" prop="csxg3" label="三季度整改措施效果">
        </el-table-column>
        <el-table-column align="center" prop="csxg4" label="四季度整改措施效果">
        </el-table-column>
        <el-table-column align="center" prop="bz" label="备注">
        </el-table-column>

        <!-- <el-table-column align="center" fixed="right" label="操作" width="140">
          <template slot-scope="scope">
            <el-button
              @click="handleClick(scope.row, 'check')"
              type="text"
              style="color: #2ec02e"
              >查看</el-button
            >
            <el-button @click="handleClick(scope.row, 'edit')" type="text"
              >编辑</el-button
            >
            <el-button
              @click="handleDelete(scope.row)"
              type="text"
              style="color: red"
              >删除</el-button
            >
          </template>
        </el-table-column> -->
      </el-table>

      <!-- 分页器 -->
      <el-pagination align="right" background :current-page.sync="pageNo" @size-change="handleSizeChange"
        @current-change="handleCurrentChange" :page-sizes="[5, 10, 20, 30, 40, 50]" :page-size="pageSize"
        layout="total, sizes, prev, pager, next, jumper" :total="total">
      </el-pagination>
    </div>
  </div>
</template>

<script>
// import mzhhApi from '@/api/sjtb/scgl/mzhhwtzgqd';
import mzshhzgqkApi from "@/api/jcsj/yxgl/dzsj/mzshhzgqk";
import Bolb from "@/vendor/Blob";
import Export2Excel from "@/vendor/Export2Excel";
import XLSX from "xlsx-style";
export default {
  data() {
    return {
      pageNo: 1,
      pageSize: 10,
      total: 0,
      // table数据
      tableData: [],
      starDate: '',
      endDate: '',
      currentPage: 1,
      //表单填报的数据
      mzshhzgqkForm: {
        id: "",
        nd: "", //年度
        dzbmc: "", //党支部名称
        tm: "", //题目
        czwt: "", //存在问题
        zrbm: "", //责任部门
        zgcs: "", //整改措施
        jdap: "", //进度安排
        csxg1: "", //一季度整改措施效果
        csxg2: "", //二季度整改措施效果
        csxg3: "", //三季度整改措施效果
        csxg4: "", //四季度整改措施效果
        bz: "", //备注
      },
      //时间快捷选择
      pickerOptions: {
        // disabledDate(time) {
        //   return time.getTime() > Date.now();
        // },
        shortcuts: [{
          text: '今天',
          onClick(picker) {
            picker.$emit('pick', new Date());
          }
        }, {
          text: '昨天',
          onClick(picker) {
            const date = new Date();
            date.setTime(date.getTime() - 3600 * 1000 * 24);
            picker.$emit('pick', date);
          }
        }, {
          text: '一周前',
          onClick(picker) {
            const date = new Date();
            date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
            picker.$emit('pick', date);
          }
        }]
      },
      value1: '',
      //获取当前日期
      currentTime: '',
      //编辑框是否显示
      dialogFormVisible: false,
      //弹出框是否是查看
      ischeck: false,
      //控制查看时不可更改数据
      isInput: false,
      //弹出框标题
      myDialogTitle: '',
    }
  },
  created() {
  },
  mounted() {
    this.filterTime();
    this.search();
    //this.getDataRq();
    this.reload();
    //this.exportExcel();
  },
  methods: {
     /**
    * 查询列表
    */
    async search() {
      // this.pageNo = pageNo; //当前页码
      // this.pageSize = pageSize; //每页显示数量
      //发送查询请求
      let res = await mzshhzgqkApi.getList({
        pageNo: this.pageNo,
        pageSize: this.pageSize,
      });
      //判断是否成功
      if (res.success) {
        console.log(res.data);
        //赋值
        this.tableData = res.data.records;
        //总数量
        this.total = res.data.total;
      }
    },
    exportExcel() {
      require.ensure([], () => {
        const { export_json_to_excel } = require("@/vendor/Export2Excel"); //此处把路径要写对
        //复杂表头书写
        //添加表格id
        var myindex = [];
        for (var i = 0; i < this.total; i++) {
          myindex[i] = i + 1;
        }
        var newindex = myindex.map((item) => {
          console.log(item);
          return {
            index: item,
          };
        });
        // //将添加的序号加入到表格中形成新的mergeArr表格
        let mergeArr = [newindex, this.tableData].reduce((prev, curr) => {
          return prev.map((item, index) => {
            return Object.assign(item, curr[index]);
          });
        });
        console.log("mergeArr", mergeArr);
        console.log("tableData", this.tableData);

        // const tHeader = ['日期', '姓名', '地址'];
        // // 上面设置Excel的表格第一行的标题
        //一级表头
        const multiHeader = [
          [
            "民主生活会整改情况",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
          ],
        ];
        //二级表头
        const header = [
          "序号",
          "年度",
          "党支部名称",
          "题目",
          "存在问题",
          "责任部门",
          "整改措施",
          "进度安排",
          "一季度整改措施效果",
          "二季度整改措施效果",
          "三季度整改措施效果",
          "四季度整改措施效果",
          "备注",
        ];
        //表头字段
        const filterVal = [
          "index",
          "nd",
          "dzbmc",
          "tm",
          "czwt",
          "zrbm",
          "zgcs",
          "jdap",
          "csxg1",
          "csxg2",
          "csxg3",
          "csxg4",
          "bz",
        ];
        //需要合并的单元格
        const merges = ["A1:I1"];
        //表头样式
        let headerStyle = [
          "A1",
          "B1",
          "C1",
          "D1",
          "E1",
          "F1",
          "G1",
          "H1",
          "I1",
          "J1",
          "K1",
          "L1",
          "M1",
        ];
        // 上面的index、nickName、name是tableData里对象的属性
        console.log(this.tableData);
        // const list = this.tableData;  //把data里的tableData存到list
        // const data = this.formatJson(filterVal, list);
        const list = mergeArr;
        const data = this.formatJson(filterVal, list);
        console.log(111111);
        console.log(list);
        console.log(data);

        export_json_to_excel({
          //header: tHeader,
          multiHeader: multiHeader,
          header: header,
          merges: merges,
          headerStyle: headerStyle,
          data: data,
          filename: "民主生活会整改情况",
          autoWidth: true,
          bookType: "xlsx",
        }); //"列表excel"  是下载后的表名 可修改
        this.$message.success("导出报表成功！");
      });
    },
    formatJson(filterVal, jsonData) {
      return jsonData.map((v) => {
        return filterVal.map((j) => v[j]);
      });
    },
    /*** 当每页数量发生变化时触发该事件 */
    handleSizeChange(size) {
      console.log(size);
      this.pageSize = size;
      //将每页显示的数量交给成员变量
      this.search(this.pageNo, size);
    },
    /*** 当页码发生变化时触发该事件 */
    handleCurrentChange(page) {
      console.log(page);
      this.pageNo = page;
      //调用查询方法
      this.search(page, this.pageSize);
    },
    // 序号计算
    indexMethod(index) {
      // index默认在0开始，这里+1
      return index + 1 + (this.pageNo - 1) * this.pageSize;
    },
    // 获取当前日期
    filterTime() {
      var date = new Date();
      var y = date.getFullYear();
      var m = date.getMonth() + 1;
      m = m < 10 ? '0' + m : m;
      var d = date.getDate();
      d = d < 10 ? '0' + d : d;
      this.currentTime = y + '-' + m + '-' + d;
    },
    //日期查询点击事件
    reload() {
      this.tableData = [];

      console.log(1010);
      console.log(this.value1[0]);//value1[0] 开始时间 value1[1] 结束时间 
      this.startDate = this.value1[0];
      this.endDate = this.value1[1];
      this.search();
      //  console.log(this.value1[0]);
      //this.$refs.table.reload({ page: 1 });

    },
  }
}
</script>
<style lang="scss" scoped>
// 标题
.mytitle {
  font-size: larger;
  padding-left: 45%;
  margin-bottom: 16px;
  float: left;
}

//按钮组
.myTime {
  float: right;
}

//格子的样式
.bg-white {
  background: #ffffff;
}

.grid-content {
  padding: 10px;
  margin-bottom: 10px;
  border-radius: 4px;
}

.calendar ::v-deep .el-button-group::before {
  display: none;
}

.calendar ::v-deep .el-button-group::after {
  display: none;
}

// 分割线样式
.el-divider--horizontal {
  display: block;
  height: 2px;
  width: 100%;
  margin: 24px 0;
}

// 表单各项的样式
.el-form-item {
  margin: 15px 10px 15px 10px;
}
</style>